Computer software provides many functions and benefits and is able to handle many different types of information. As the functionality and complexity of software increases it may be more difficult for a human user to interact with and control the software. In order to improve the usability of software, it is often important to provide an efficient user interface.
One type of task that is typically handled by a user interface is selecting an item from a collection or group of items. For example, the item can be a name of a person, company, department, form, etc. in a table, list, menu or other presentation of the items. Optimizing the item presentation and selection process can produce benefits, especially if there are many items of different categories that are difficult to navigate among in a program that requires several or many item selections in order to perform a task.
Examples of programs that require user selection of many items during the course of a session include Human Resource Management Software (HRMS), Customer Relationship Management (CRM), office productivity applications, etc. In a particular example, a user may wish to view a specific page of information about a single customer's account receivable. In traditional systems, the user might be required to navigate among multiple categories (e.g., Administration, Billing, Account Receivable) that are organized as headings or folders. Within each folder the user may have to further select a subcategory or sub-folder (e.g., Billing Data, Activity, Item List, etc.).
Once the user has navigated to the desired category then a search may be required in order to obtain a specific record or page within that category. The user may have to input numbers or text to identify a specific “key” for a page so that the page can be retrieved based on the key. If the user does not know the key then additional descriptive information can be entered to assist the user to identify the key or the page. The user might also be allowed to form a relational query for a search for the page such as by entering all or a part of a name, date range, numeric range, etc.